Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[cli] Full config help details #4928

Merged
merged 2 commits into from
Jan 7, 2020
Merged

Conversation

jimschubert
Copy link
Member

@jimschubert jimschubert commented Jan 5, 2020

Extends the config-help command for formatted output of things like instantiation type mappings, import mappings, etc. Not included here is supporting files because these are almost always set at processOpts time, meaning we'd need to have a dry-run option on the generate command for those outputs.

I haven't enabled the outputs by default. Looking for contributor feedback first. I think this would be an excellent addition to the generator docs that we auto-generate.

Adds boolean options for which output user is looking for, including a full-details option for all.

NAME
        openapi-generator-cli config-help - Config help for chosen lang

SYNOPSIS
        openapi-generator-cli config-help
                [(-f <output format> | --format <output format>)] [--full-details]
                [(-g <generator name> | --generator-name <generator name>)]
                [--import-mappings] [--instantiation-types]
                [--language-specific-primitive] [--markdown-header] [--named-header]
                [(-o <output location> | --output <output location>)] [--reserved-words]

OPTIONS
        -f <output format>, --format <output format>
            Write output files in the desired format. Options are 'text',
            'markdown' or 'yamlsample'. Default is 'text'.

        --full-details
            displays CLI options as well as other configs/mappings (implies
            --instantiation-types, --reserved-words,
            --language-specific-primitives, --import-mappings,
            --supporting-files)

        -g <generator name>, --generator-name <generator name>
            generator to get config help for

        --import-mappings
            displays the default import mappings (types and aliases, and what
            imports they will pull into the template)

        --instantiation-types
            displays types used to instantiate simple type/alias names

        --language-specific-primitive
            displays the language specific primitives (types which require no
            additional imports, or which may conflict with user defined model
            names)

        --markdown-header
            When format=markdown, include this option to write out markdown
            headers (e.g. for docusaurus).

        --named-header
            Header includes the generator name, for clarity in output

        -o <output location>, --output <output location>
            Optionally write help to this location, otherwise default is
            standard output

        --reserved-words
            displays the reserved words which may result in renamed model or
            property names

Plain text output example

image

Formatted markdown output example

image

PR checklist

  • Read the contribution guidelines.
  • If contributing template-only or documentation-only changes which will change sample output, build the project before.
  • Run the shell script(s) under ./bin/ (or Windows batch scripts under.\bin\windows) to update Petstore samples related to your fix. This is important, as CI jobs will verify all generator outputs of your HEAD commit, and these must match the expectations made by your contribution. You only need to run ./bin/{LANG}-petstore.sh, ./bin/openapi3/{LANG}-petstore.sh if updating the code or mustache templates for a language ({LANG}) (e.g. php, ruby, python, etc).
  • File the PR against the correct branch: master, 4.3.x, 5.0.x. Default: master.
  • Copy the technical committee to review the pull request if your PR is targeting a particular programming language.

cc @OpenAPITools/generator-core-team

@auto-labeler
Copy link

auto-labeler bot commented Jan 5, 2020

👍 Thanks for opening this issue!
🏷 I have applied any labels matching special text in your issue.

The team will review the labels and make any necessary changes.

@jimschubert
Copy link
Member Author

cc @OpenAPITools/generator-core-team

@jimschubert
Copy link
Member Author

I didn't output yamlsample because I'm not sure exactly what this format output is used for, or how the above would fit into that formatted output.

@jimschubert jimschubert added this to the 4.2.3 milestone Jan 7, 2020
@jimschubert jimschubert merged commit e23f2aa into master Jan 7, 2020
@jimschubert jimschubert deleted the full-config-help-details branch January 7, 2020 18:34
jimschubert added a commit to jimschubert/openapi-generator that referenced this pull request Jan 11, 2020
* master: (187 commits)
  [core] Initial FeatureSet structures and definitions (OpenAPITools#3614)
  Add Cisco to the user list (OpenAPITools#4971)
  comment out php slim4 in ensure-up-to-date
  update samples
  [Python] Allow models to have properties of type self (OpenAPITools#4888)
  Add npmRepository option to javascript generators (OpenAPITools#4956)
  [Slim4] Add ref support to Data Mocker (OpenAPITools#4932)
  Fix auto-labeler for jax-rs (OpenAPITools#4943)
  [doc] full generator details (OpenAPITools#4941)
  comment out python flask 2 test (OpenAPITools#4949)
  [jaxrs-spec][quarkus] update to version 1.1.1.Final (OpenAPITools#4935)
  [cli] Full config help details (OpenAPITools#4928)
  Add RequestFile to typescript-node model template (OpenAPITools#4903)
  [csharp] enum suffix changes enumValueNameSuffix to enumValueSuffix (OpenAPITools#4927)
  [C#] allow customization of generated enum suffixes (OpenAPITools#4301)
  [Kotlin] Correct isInherited flag for Kotlin generators (OpenAPITools#4254)
  [Rust Server] Fix panic handling headers (OpenAPITools#4877)
  Initial CODEOWNERS (OpenAPITools#4924)
  [scala] Support for Set when array has uniqueItems=true (OpenAPITools#4926)
  remove nodejs server samples, scripts (OpenAPITools#4919)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant